#ifndef ConfigDialog_H
#define ConfigDialog_H

#include <QDialog>
#include <QString>
#include <QSettings>
#include <QAbstractButton>
#include <QList>
#include <QLabel>

#include <QSerialPortInfo>

namespace Ui {
    class ConfigDialog;
}

class ConfigDialog : public QDialog
{
    Q_OBJECT

public:
    explicit ConfigDialog(QWidget *parent = 0);
    ~ConfigDialog();

    bool configValid;
    QString port,mode;

    bool autoSelect(const QSerialPortInfo &info);

    void writeConfig(void);
    bool readConfig(void);

signals:
    void serialConfigChanged(QString _port,QString _mode);

public slots:
    void setSerialConfig(QString _port,QString _mode);
    //void setConfigFileName(QString _cfgfile);

private slots:
    void on_buttonBox_clicked(QAbstractButton *button);

    void on_cfgfile_button_clicked();
    void on_port_button_pressed();
    void on_port_button_released();
    void on_mode_button_clicked();

    void on_port_edit_textChanged(const QString &arg1);
    void on_mode_edit_textChanged(const QString &arg1);

    void on_cfgfile_edit_textChanged(const QString &arg1);


private:
    Ui::ConfigDialog *ui;

    QSettings *uartinfo;

    //QList<QLabel*> uartlist;

};

#endif // ConfigDialog_H
